package com.yonyou.gmmc.dealerApp.api.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.marketing.common.dto.maintain.SosHelpDealerInfoDto;
import org.marketing.common.dto.maintain.SosHelpDto;
import org.marketing.common.dto.search.DealerAppSearchDto;

import com.yonyou.gmmc.common.annotation.MySQLDb;
import com.yonyou.gmmc.common.annotation.OracleDb;
import com.yonyou.gmmc.dealerApp.api.entity.SosHelpPO;
import com.yonyou.gmmc.dealerApp.api.model.TtSoshelp;
import tk.mybatis.mapper.common.Mapper;
//@MySQLDb
@OracleDb
public interface TtSoshelpMapper extends Mapper<TtSoshelp> {
	/**
     * 微信端保存一键救援
     * 
     * @author WangHuicheng
     * @date 2016年11月14日
     * @param lat
     * @param lng
     * @param DealerCode
     * @param openId
     */
    public void saveSosHelpByOpenId(TtSoshelp sosHelpPO);

    /**
     * 车主APP端保存一键救援
     * 
     * @author WangHuicheng
     * @date 2016年11月14日
     * @param lat
     * @param lng
     * @param DealerCode
     * @param openId
     */
    public void saveSosHelp(TtSoshelp sosHelpPO);


    /**
     * 
    * 查询救援信息-车主
    * @author WangHuicheng
    * @date 2016年12月22日
    * @param sosHelpDto
    * @return
     */
    public List<SosHelpDto> getSosHelpByCarOwner(SosHelpDto sosHelpDto);
    
    /**
     * 
    * 查询救援信息-潜客
    * @author WangHuicheng
    * @date 2016年12月22日
    * @param sosHelpDto
    * @return
     */
    public List<SosHelpDto> getSosHelpQianke(SosHelpDto sosHelpDto);
    
    /**
     * 
    *更新一键救援表
    * @author WangHuicheng
    * @date 2016年11月14日
    * @param SosHelpDto
     */
    public void updateSosHelp(SosHelpDto sosHelpDto);
    
    /**
     * 
    *
    * @author WangHuicheng
    * @date 2016年11月22日
    * @param dealerCode
    * @param salesConsultantId
    * @param status
    * @param submitDateFrom
    * @param submitDateEnd
    * @return
     */
    public List<SosHelpDto> getSosHelpInfo(@Param("dealerCode") String dealerCode,
                                           @Param("salesConsultantId") Integer salesConsultantId,
                                           @Param("status") Integer status,
                                           @Param("submitDateFrom") String submitDateFrom,
                                           @Param("submitDateEnd") String submitDateEnd);



    /**
    *
    * @author QianKun
    * 一鍵救援列表查詢
    * @date 2016年11月18日
    * @param carOwnerUserId1
    * @return
    */
    public List<SosHelpDto> querySosHelpData(@Param("carOwnerUserId") String carOwnerUserId);
    
    /**
    *
    * @author QianKun
    *  一鍵救援详情查询
    * @date 2016年11月18日
    * @param soshelpId1
    * @return
    */
    public List<SosHelpDto> querySosHelpDataById(@Param("soshelpId") String soshelpId);

    /**
     * 
        * 一键救援List信息取得
    * @author WangHuicheng
    * @date 2016年11月23日
    * @param dealerAppSearchDto
    * @return
     */
    public List<SosHelpDto> getSosHelpInfoList(DealerAppSearchDto dealerAppSearchDto);
    
    /**
     * 
    * 售后抢客户
    * @author WangHuicheng
    * @date 2016年12月14日
    * @param sosHelpDto
     */
    public void updateSosHelp4rush(SosHelpDto sosHelpDto);
    
    /**
     * 取得紧急救援的经销商
    *
    * @author WangHuicheng
    * @date 2016年12月27日
    * @param minLat
    * @param minLng
    * @param maxLat
    * @param maxLng
    * @param lat
    * @param lng
    * @return
     */
    public List<SosHelpDealerInfoDto> getSosHelpDealerInfo(@Param("minLat")double minLat,
                                                    @Param("minLng")double minLng,
                                                    @Param("maxLat")double maxLat,
                                                    @Param("maxLng")double maxLng,
                                                    @Param("lat")double lat,
                                                    @Param("lng")double lng,
                                                    @Param("userId") Long userId);
    /**
     * 
     * 取得紧急救援的经销商
    * @author WangHuicheng
    * @date 2016年12月28日
    * @param minLat
    * @param minLng
    * @param maxLat
    * @param maxLng
    * @param lat
    * @param lng
    * @param userId
    * @return
     */
    public List<SosHelpDealerInfoDto> getSosHelpDealerInfoByOpenId(@Param("minLat")double minLat,
                                                           @Param("minLng")double minLng,
                                                           @Param("maxLat")double maxLat,
                                                           @Param("maxLng")double maxLng,
                                                           @Param("lat")double lat,
                                                           @Param("lng")double lng,
                                                           @Param("userId") String userId);
    
    

}